n = int(input())
array = list(map(int, input().split()))
array = [(q - 1) for q in array]
dist = [0] + ([-1] * (n - 1))
i = 0
fila = [0]
while i < len(fila):
k = fila[i]
q = array[k]
if dist[q] == -1:
dist[q] = dist[k] + 1
fila.append(q)
if k < (n - 1) and dist[k + 1] == -1:
dist[k + 1] = dist[k] + 1
fila.append(k + 1)
if k > 0 and dist[k - 1] == -1:
dist[k - 1] = dist[k] + 1
fila.append(k - 1)
i += 1
print(' '.join(str(e) for e in dist))
1581A - CQXYM Count Permutations | 337A - Puzzles |
495A - Digital Counter | 796A - Buying A House |
67A - Partial Teacher | 116A - Tram |
1472B - Fair Division | 1281C - Cut and Paste |
141A - Amusing Joke | 112A - Petya and Strings |
677A - Vanya and Fence | 1621A - Stable Arrangement of Rooks |
472A - Design Tutorial Learn from Math | 1368A - C+= |
450A - Jzzhu and Children | 546A - Soldier and Bananas |
32B - Borze | 1651B - Prove Him Wrong |
381A - Sereja and Dima | 41A - Translation |
1559A - Mocha and Math | 832A - Sasha and Sticks |
292B - Network Topology | 1339A - Filling Diamonds |
910A - The Way to Home | 617A - Elephant |
48A - Rock-paper-scissors | 294A - Shaass and Oskols |
1213A - Chips Moving | 490A - Team Olympiad |